#  引入合适的包
from skimage import io
import matplotlib.pyplot as plt
import numpy as np
#  读入RGB图:  dog.jpg
img = io.imread("dog.jpg")
rr = img * [1, 0, 0]  # 得到红色通道红色图
gg = img * [0, 1, 0]  # 得到绿色通道绿色图
bb = img * [0, 0, 1]  # 得到蓝色通道蓝色图
img2 = rr + gg + bb  # 把rr,gg,bb合成RGB图
r = img @ [1, 0, 0]  # 得到红色通道单通道图
g = img @ [0, 1, 0]  # 得到绿色通道单通道图
b = img @ [0, 0, 1]  # 得到蓝色通道单通道图
img3 = np.stack((r, g, b), axis=2)  # 把r,g,b合成RGB图
#  在1个画板上绘制3*3附子图,  画板高15，宽15
fg, ax = plt.subplots(3, 3, figsize=(15, 15))
ax[0, 0].imshow(img)
ax[0, 1].imshow(img2)
ax[0, 2].imshow(img3)
ax[1, 0].imshow(rr, cmap='gray')
ax[1, 1].imshow(gg, cmap='gray')
ax[1, 2].imshow(bb, cmap='gray')
ax[2, 0].imshow(r, cmap='gray')
ax[2, 1].imshow(g, cmap='gray')
ax[2, 2].imshow(b, cmap='gray')
plt.tight_layout()  # 调整子图位置
#  以最紧凑模式保存显示内容到  out.png
plt.savefig('out.png', bbox_inches='tight')
plt.show()
